<?php

class ChatboxController extends AppController {

    var $uses = array('ChatboxMessage');
    var $components = array('StandaloneAntispamFilter', 'Session');
    var $helpers = array("Emoticons", "Html");

    public function chatbox($chatboxId) {
        $this->layout = null;

        $data = $this->ChatboxMessage->find('all', array('limit' => '10', 'order' => array('ChatboxMessage.timestamp DESC', 'ChatboxMessage.id DESC')));
        $this->set("data", array_reverse($data));
        $this->set("chatboxId", $chatboxId);
    }

    public function post($chatboxId) {
        $this->layout = null;
        $data = $_POST;

        if (!empty($data)) {
            $data['timestamp'] = time();

            if (!empty($data['content'])) {
                if (isset($data['guest'])) {
                    if ($data['guest'] == "1") {
                        if (!empty($data['nick'])) {
                            $this->ChatboxMessage->save($data);
                        } else {
                            echo("Bład: Brakujący parametr nick. Nie zapisano wiadomości.");
                        }
                    } elseif ($data['guest'] == "0") {
                        if (!empty($data['user_id'])) {
                            $this->ChatboxMessage->save($data);
                        } else {
                            echo("Bład: Brakujący parametr user_id. Nie zapisano wiadomości.");
                        }
                    } else {
                        echo("Bład: Nieprawidłowa wartość parametru Guest: " . $data['guest'] . ". Nie zapisano wiadomości.");
                    }
                    $this->ChatboxMessage->save();
                } else {
                    echo("Bład: Brakujący parametr Guest. Nie zapisano wiadomości.");
                }
            } else {
                echo("Bład: Brakujący parametr content. Nie zapisano wiadomości.");
            }
        } else {
            echo("Bład: Brakuje argumentów POST.");
        }

        $data = $this->ChatboxMessage->find('all', array('limit' => '10', 'order' => array('ChatboxMessage.timestamp DESC', 'ChatboxMessage.id DESC')));
        $this->set("data", array_reverse($data));
        $this->set("chatboxId", $chatboxId);
    }

    public function archive() {
        $this->title = "Archiwum Chatboxa";

        $this->paginate = array(
            'limit' => 40,
            'order' => array(
                'ChatboxMessage.timestamp' => 'desc',
                'ChatboxMessage.id' => 'desc'
            )
        );
        $this->set("data", array_reverse($this->paginate('ChatboxMessage')));
    }

    public function admin_index() {
        $this->title = "Chatbox";

        $this->paginate = array(
            'limit' => 40,
            'order' => array(
                'ChatboxMessage.timestamp' => 'desc',
                'ChatboxMessage.id' => 'desc'
            )
        );
        $this->set("data", array_reverse($this->paginate('ChatboxMessage')));
    }

    public function admin_delete($id) {
        $this->title = "Usuwanie wiadomości Chatboxa";

        if ($this->ChatboxMessage->delete($id)) {
            $this->Session->setFlash('Usunięto.');
            $this->redirect(array('action' => 'admin_index'));
        }
    }

    public function admin_fastdelete($id) {
        $this->layout = null;

        if ($this->ChatboxMessage->delete($id)) {
            $this->set('message', "OK");
        }
        else $this->set('message', "Bląd. Nie usunięto.");
    }
}
?>
